// pages/api/users/me.js

import { User } from '../../../db/models/user';
import jwt from 'jsonwebtoken';
import { sendError, sendSuccess } from "../../utils/responseHandler";

export default async function handler(req, res) {
    if (req.method === 'GET') {
        try {
            const token = req.headers.authorization?.split(' ')[1];  // Bearer token
            if (!token) {
                sendError(res, '没有提供Token', 401);
                return;
            }

            const decoded = jwt.verify(token, 'linweifeng123456789');
            const user = await User.findByPk(decoded.id);
            if (!user) {
                sendError(res, '用户未找到', 404);
                return;
            }

            // 返回用户数据，除了密码之外的其他信息
            const { password, ...userData } = user.toJSON();
            sendSuccess(res, userData);
        } catch (error) {
            if (error.name === 'JsonWebTokenError') {
                sendError(res, '无效的Token', 401);
            } else if(error.name === 'TokenExpiredError'){
                sendError(res, 'Token已过期', 500);
            }else{
                sendError(res, '内部服务器错误', 500);
            }
        }
    } else {
        res.setHeader('Allow', ['GET']);
        res.status(405).end('Method Not Allowed');
    }
}
